<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>扩展和子协议</title>
	</head>
	<body>
		<script>
			// WebSocket 可能还有其他 headrer，Sec-WebSocket-Extensions 和 Sec-WebSocket-Protocol，它们描述了扩展和子协议。

			// Sec-WebSocket-Extensions: deflate-frame 表示浏览器支持数据压缩。
			// Sec-WebSocket-Protocol: soap, wamp 表示我们不仅要传输任何数据，还要传输 SOAP 或 WAMP 协议中的数据。

			// 这个可选的 header 是使用 new WebSocket 的第二个参数设置的。它是子协议数组，例如，如果我们想使用 SOAP 或 WAMP:

			let socket = new WebSocket('ws://localhost:8080/echo', ['soap', 'wamp'])

			// 服务器应该使用同意使用的协议和扩展的列表进行响应。
		</script>
	</body>
</html>
